#ifndef GS_FUNCTION_H
#define GS_FUNCTION_H

#include "include/Gs.h"
#include "Managed.h"

namespace Gs
{
	// Represents a GorillaScript or native function.
	class Function : public Managed
	{
	private:
		// Stores the native function pointer.
		NativeFunction _native;

	public:
		// Initialises a new instance of Function class.
		Function(NativeFunction f);

		// Destroys the instance.
		~Function();

		// Gets the native function pointer.
		NativeFunction GetNativeFunction();

		// Determines if the function is a native function.
		bool IsNativeFunction();
	};
}

#endif